home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-08-14 | 1.9 KB | 52 lines | [TEXT/MPS ] |
- struct ShieldRectParamBlock
- {
- ProcPtr procPtr; /* pointer to routine to call if shield touches */
- long refCon; /* constant to pass to UPP routine */
- Rect newRect; /* New rect */
- Rect * shieldRect; /* pointer to private shield rect, returned by register */
- void *shieldStructPtr; /* pointer to shield parameter block, returned by register */
- };
- typedef struct ShieldRectParamBlock ShieldRectParamBlock, *ShieldRectParamBlockPtr;
-
- enum
- {
- kGetBlitProcVers,
- kGetBlitProcPtr,
- kSetBlitProcPtr,
- kRegisterShieldRectangle,
- kUnRegisterShieldRectangle,
- kSetShieldRectangle
- };
-
- EXTERN_API( SInt32 )
- NQDMisc (SInt32 selector,
- SInt32 * paramBlock) ONEWORDINLINE(0xABC3);
-
- typedef CALLBACK_API( void , QDUserNotifyProcPtr )(SInt16 left, SInt16 top, SInt16 right, SInt16 bottom, SInt32 refCon);
- typedef STACK_UPP_TYPE(QDUserNotifyProcPtr) QDUserNotifyUPP;
- enum { uppQDUserNotifyProcInfo = 0x0000EA80 }; /* pascal no_return_value Func(2_bytes, 2_bytes, 2_bytes, 2_bytes, 4_bytes) */
- #define NewQDUserNotifyProc(userRoutine) (QDUserNotifyUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDUserNotifyProcInfo, GetCurrentArchitecture())
- #define CallQDUserNotifyProc(userRoutine, left, top, right, bottom, refCon) CALL_FIVE_PARAMETER_UPP((userRoutine), uppQDUserNotifyProcInfo, (left), (top), (right), (bottom), (refCon))
-
- if (cnp->nqdShieldRectPtr) {
- pb.newRect = cnp->globalRect;
- pb.shieldStructPtr = cnp->nqdShieldRectPtr;
- NQDMisc(kSetShieldRectangle, (long*)&pb);
- }
- else {
- pb.procPtr = (void *)GetRoutineAddress(nqdCursorShielded);
- pb.refCon = (long)cnp;
- pb.newRect = cnp->globalRect;
- pb.shieldStructPtr = nil;
- NQDMisc(kRegisterShieldRectangle, (long*)&pb);
- cnp->nqdShieldRectPtr = pb.shieldStructPtr;
- }
-
- if (cnp->nqdShieldRectPtr) {
- ShieldRectParamBlock pb;
-
- pb.shieldStructPtr = cnp->nqdShieldRectPtr;
- NQDMisc(kUnRegisterShieldRectangle, (long*)&pb);
- cnp->nqdShieldRectPtr = nil;
- }
-